def config_rest_framework():
    return {
        # 认证配置
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework_simplejwt.authentication.JWTAuthentication',
            'rest_framework.authentication.SessionAuthentication',  # 保留session认证
        ],

        # 权限配置（默认需要认证）
        'DEFAULT_PERMISSION_CLASSES': [
            # 'rest_framework.permissions.AllowAny'# 允许任何人访问
            'rest_framework.permissions.IsAuthenticatedOrReadOnly',  # 允许只读公开访问
        ],

        # API分页配置
        'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
        'PAGE_SIZE': 15,

        # 请求解析器
        'DEFAULT_PARSER_CLASSES': [
            'rest_framework.parsers.JSONParser',
            'rest_framework.parsers.FormParser',
            'rest_framework.parsers.MultiPartParser',
        ],

        # 响应渲染器
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            'rest_framework.renderers.BrowsableAPIRenderer',  # 调试用API界面
        ],

        # 限流配置（按需调整）
        'DEFAULT_THROTTLE_CLASSES': [
            'rest_framework.throttling.AnonRateThrottle',
            'rest_framework.throttling.UserRateThrottle'
        ],
        'DEFAULT_THROTTLE_RATES': {
            'anon': '1000/hour',  # 匿名用户限制
            'user': '1000/hour'  # 认证用户限制
        },

        # 版本控制
        'DEFAULT_VERSIONING_CLASS': None,
        # 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning',
        # 'ALLOWED_VERSIONS': ['v1', 'v2'],
        # 'DEFAULT_VERSION': 'v1',

        # 过滤器后端
        'DEFAULT_FILTER_BACKENDS': [
            'django_filters.rest_framework.DjangoFilterBackend',
            'rest_framework.filters.SearchFilter',
            'rest_framework.filters.OrderingFilter',
        ],
        # 异常处理
        'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler',
        'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
    }
